문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 정규 표현식 (문단 편집) === 탐욕적 및 게으른 수량자 === 정규 표현식에서는 일치하는 패턴을 찾는 횟수 제한이 없어 필요 이상의 상황을 연출하기도 하는데 이것은 의도적으로 수량자를 탐욕적으로 만들었기 때문이다. 문법에서 말하는 탐욕적 수량자(Greedy Quantifier)란 가능하면 가장 큰 덩어리를 찾는다는 뜻이다. 반대의 개념인 게으른 수량자(Lazy Quantifier)는 패턴에 근접하는 최소한의 덩어리를 찾는다. * 탐욕적 수량자: {{{*}}}, {{{+}}}, {{{ {n,} }}} * 게으른 수량자: {{{*?}}}, {{{+?}}}, {{{ {n,}? }}} 사용 예([[Python]]) : {{{#!syntax python >>> data = " First Second" >>> import re >>> re.findall(r"(.+)", data) # 기본적으로 탐욕적인 매칭 ['First Second'] >>> re.findall(r"(.+?)", data) # 게으른 수량자 사용 ['First', 'Second'] }}} 사실 제대로 구현한 HTML 파서(Parser)는 정규식에 유한상태기계를 결합한 [[오토마타]]를 사용하지 게으른 수량자를 사용하지 않는다. 물론 언어별로 HTML 파서는 거의 만들어져 있으므로 HTML 파서를 또 구현할 필요는 전혀 없다. 그리고 수량자를 사용해도 정규식으로는 괄호 매치를 못 한다. 무슨 얘기냐면, 지금 매치한 '''닫힌 괄호'''에 대응하는 '''열린 괄호'''를 찾는 문제는 정규식만으로는 안 된다. 고정 갯수의 괄호는 매치할 수 있지만 임의의 괄호는 매치할 수 없다. 이는 정규식이 정규 언어이기 때문에 발생하는 한계이다.[* 이는 펌핑 보조정리(pumping lemma)를 통해 증명 가능하다.] 괄호 매치를 하려면 최소 [[푸시다운 오토마타]](문맥 자유 언어)가 필요하다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기